using UwinEducation.Application.Dtos;
using UwinEducation.Shared.Models;

namespace UwinEducation.Application.Common.Interfaces
{
    /// <summary>
    /// 学生服务接口
    /// </summary>
    public interface IStudentService
    {
        /// <summary>
        /// 获取学生分页列表
        /// </summary>
        Task<PagedResult<StudentDto>> GetPagedListAsync(StudentPageRequest pageRequest);

        /// <summary>
        /// 获取学生详情
        /// </summary>
        Task<StudentDto> GetByIdAsync(Guid id);

        /// <summary>
        /// 创建学生
        /// </summary>
        Task<StudentDto> CreateAsync(CreateStudentDto input);

        /// <summary>
        /// 更新学生
        /// </summary>
        Task<StudentDto> UpdateAsync(UpdateStudentDto input);

        /// <summary>
        /// 删除学生
        /// </summary>
        Task DeleteAsync(Guid id);
        /// <summary>
        /// 根据学生IDs获取学生列表
        /// </summary>
        Task<List<StudentDto>> GetListByIdsAsync(List<IdRequest> request);
        /// <summary>
        /// 获取学生编号最大值
        /// </summary>
        Task<int> GetMaxStudentNoAsync();
    }
}